module.exports = (vm) => {
	uni.$u.http.setConfig((config) => {
		config.baseURL = 'http://121.41.116.2:9889/' // 腾讯支付地址测试
		//config.baseURL = 'http://127.0.0.1:9889/' //本地测试
		// config.baseURL = 'http://kj969m.natappfree.cc' //本地测试
		// config.baseURL = 'https://m.randomdoor.art/' // 任意门old正式
		// config.baseURL = 'http://shiguangji.club/' // 正式
		// config.baseURL = '' // 正式
		config.timeout = 30000;
		config.withCredentials = true;
		config.header.Authorization = uni.getStorageSync('token');
		return config;
	});
	// 请求拦截
	uni.$u.http.interceptors.request.use((config) => { // 可使用async await 做异步操作		
		// 初始化请求拦截器时，会执行此方法，此时data为undefined，赋予默认{}
		config.data = config.data || {}		
		if (config?.custom?.auth) {
			// 可以在此通过vm引用vuex中的变量，具体值在vm.$store.state中			
			if (!uni.getStorageSync('token') || !uni.getStorageSync('username')) {
				uni.reLaunch({
					url: '/pages/login/login'
				})
				return;
			}
			config.header.Authorization = uni.getStorageSync('token');			
		}
		return config
	}, config => { // 可使用async await 做异步操作
		return Promise.reject(config)
	});
	// 响应拦截
	uni.$u.http.interceptors.response.use((response) => {
		/* 对响应成功做点什么 可使用async await 做异步操作*/
		const data = response.data
		if (data.code != 200) {
			uni.hideLoading()
			let msg = data.msg || data.info || '';
			if (msg) {
				uni.$u.toast(msg)
			}
			if (data.code == 402 || data.code == 401) {
				uni.reLaunch({
					url: '/pages/login/login'
				})
				return;
			}
			if (data.code == "500") {
				return {};
			}
			return Promise.reject(data)
		}
		
		return data === undefined ? {} : data
	}, (err) => {
		uni.hideLoading()
		uni.$u.toast(`请求错误`)		
		return Promise.reject(err)
	})

}
